package com.zsr.system.service.zfb;

import com.alipay.api.AlipayConfig;
import com.alipay.api.domain.AlipayFundTransUniTransferModel;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 阿里支付宝支付模块相关接口
 * 时间：2024年8月5日15:02:03
 *
 * @author zsr
 */
public interface IAliPayService {
    /**
     * 手机网站支付宝支付功能
     *
     * @param orderId    订单ID
     * @param amount     金额
     * @param title      标题
     * @param expireTime 过期时间
     *                   return 支付宝支付地址
     */
    String phoneAliPay(String orderId, BigDecimal amount, String title, Date expireTime);


    /**
     * 支付宝支付异步回调 验签
     *
     * @param request 请求参数
     * @return success || failure
     */
    String phonePayNotify(HttpServletRequest request);

    /**
     * 沙箱环境手机支付
     *
     * @param orderId    订单ID
     * @param amount     金额
     * @param title      标题
     * @param expireTime 过期时间
     *                   return 支付宝支付地址
     */
    String sandboxPay(String orderId, BigDecimal amount, String title, Date expireTime);

    /**
     * 单笔转账到用户支付宝账户
     *
     * @param model        请求参数
     * @param alipayConfig 支付宝配置
     * @return
     */
    AlipayFundTransUniTransferResponse transfer(AlipayFundTransUniTransferModel model, AlipayConfig alipayConfig);


//    AjaxResult manyStepTransfer();

}
